package com.yang.service.addFileToPhone;

import com.yang.util.AdbConnect;

/**
 * 获取手机的文件信息
 */
public class GetPhoneFileManages {

    String cmd = "";

    /**
     * 查找文件所在的手机路径
     * @param name 文件名
     * @return 文件所在手机路径
     */
    public String getFileUrl(String name) {
        cmd = "adb shell find / -name " + name;
        return AdbConnect.run(cmd);
    }

    /**
     * 查找同文件夹下的文件所在的手机路径
     * @param url 文件夹路径
     * @return 文件所在手机路径
     */
    public String getFileUrlNsUrl(String url) {
        cmd = "adb shell ls " + url;
        return AdbConnect.run(cmd);
    }

    /**
     * 获取文件权限
     * @param url 手机内的文件路径
     * @return 手机的权限信息
     */
    public String getPower(String url) {
        cmd = "adb shell ls -l " + url;
        return analysePower(AdbConnect.run(cmd));
    }

    /**
     * 获取文件所属
     * @param url 手机内的文件路径
     * @return 手机的所属信息
     */
    public String getUser(String url) {
        cmd = "adb shell ls -l " + url;
        return analyseUser(AdbConnect.run(cmd));
    }

    /**
     * 解析返回值信息中所需的手机文件所属信息
     * @param log 通过adb返回的信息
     * @return 手机的所属信息
     */
    private String analyseUser(String log) {
        String users = log.split(" ")[2] + ":" + log.split(" ")[3];
        return users;
    }

    /**
     * 解析返回值信息中所需的手机文件权限信息
     * @param log 通过adb返回的信息
     * @return 手机的权限信息
     */
    public String analysePower(String log) {
        String power = "";
        char[] powers = log.split(" ")[0].toCharArray();
        if (powers[0]=='l') {
            System.out.println("是链接,链接无法被复制");
        }
        int num = 0;
        for (int i = 1; i < powers.length; i++) {
            if (powers[i] == 'r') {
                num += 4;
            }else if (powers[i] == 'w') {
                num += 2;
            }else if (powers[i] == 'x') {
                num += 1;
            }
            if(i%3==0){
                power+=num;
                num = 0;
            }
        }
        return power;
    }
}
